﻿Public Class Dproyecto

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyecto_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroEtapas")), _
                                    dr.GetDecimal(dr.GetOrdinal("areaProyecto")), _
                                    dr.GetDecimal(dr.GetOrdinal("precio")), _
                                    dr.GetInt32(dr.GetOrdinal("nroInmuebles")), _
                                    dr.GetString(dr.GetOrdinal("fchInicioObra")), _
                                    dr.GetString(dr.GetOrdinal("fchFinObra")), _
                                    dr.GetInt32(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("nroZonaRegional")), _
                                    dr.GetString(dr.GetOrdinal("descSede")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proyectos
    End Function
    Public Shared Function SeleccionarXUsuario(ByVal descEmpresa As String, ByVal idUsuario As Int32) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyectoXusuario_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = idUsuario
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroEtapas")), _
                                    dr.GetDecimal(dr.GetOrdinal("areaProyecto")), _
                                    dr.GetDecimal(dr.GetOrdinal("precio")), _
                                    dr.GetInt32(dr.GetOrdinal("nroInmuebles")), _
                                    dr.GetString(dr.GetOrdinal("fchInicioObra")), _
                                    dr.GetString(dr.GetOrdinal("fchFinObra")), _
                                    dr.GetInt32(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("nroZonaRegional")), _
                                    dr.GetString(dr.GetOrdinal("descSede")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proyectos
    End Function
    Public Shared Function grabarProyecto(ByVal descEmpresa As String, ByVal idUsuario As Int32, ByVal idProyecto As Int32, ByRef idUsuarioProyecto As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_grabarproyecto_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idUsuarioProyecto", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = idUsuario
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idUsuarioProyecto = Convert.ToInt64(cmd.Parameters("@idUsuarioProyecto").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
  
    Public Shared Function SeleccionarDisponibles(ByVal descEmpresa As String, ByVal idUsuario As Int32) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyectodisponible_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = idUsuario
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")))

                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proyectos
    End Function
    Public Shared Function SeleccionarXPersonal(ByVal descEmpresa As String, ByVal idUsuario As Int32) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyectoXpersonal_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = idUsuario
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")))

                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proyectos
    End Function
    Public Shared Function EliminarProyecto(ByVal descEmpresa As String, ByVal idPersonal As Int32, ByVal idProyecto As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_eliminarproyecto_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                'cmd.Parameters.Add("@idUsuarioProyecto", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idPersonal", SqlDbType.Int).Value = idPersonal
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    'idUsuarioProyecto = Convert.ToInt64(cmd.Parameters("@idUsuarioProyecto").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function SeleccionarTodoXproyecto(ByVal descEmpresa As String, ByVal pProyecto As Eproyecto) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyecto_selXProyecto", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProyecto.idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchModificacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroEtapas")), _
                                    dr.GetDecimal(dr.GetOrdinal("areaProyecto")), _
                                    dr.GetDecimal(dr.GetOrdinal("precio")), _
                                    dr.GetInt32(dr.GetOrdinal("nroInmuebles")), _
                                    dr.GetString(dr.GetOrdinal("fchInicioObra")), _
                                    dr.GetString(dr.GetOrdinal("fchFinObra")), _
                                    dr.GetInt32(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("nroZonaRegional")), _
                                    dr.GetString(dr.GetOrdinal("descSede")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proyectos
    End Function
    'Public Shared Function Añadir(ByVal pNotaria As Enotaria) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings("BDEvolta").ConnectionString)
    '        Using cmd As New SqlCommand("usp_notaria_add", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@desNotaria", SqlDbType.VarChar, 55).Value = pNotaria.desNotaria
    '            cmd.Parameters.Add("@nomContacto", SqlDbType.VarChar, 55).Value = pNotaria.nomContacto
    '            cmd.Parameters.Add("@apePaterContac", SqlDbType.VarChar, 55).Value = pNotaria.apePaterContac
    '            cmd.Parameters.Add("@apeMaterContac", SqlDbType.VarChar, 55).Value = pNotaria.apeMaterContac
    '            cmd.Parameters.Add("@telefono", SqlDbType.VarChar, 11).Value = pNotaria.telefono
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function
    'Public Shared Function Editar(ByVal pNotaria As Enotaria) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings("BDEvolta").ConnectionString)
    '        Using cmd As New SqlCommand("usp_notaria_edit", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idNotaria", SqlDbType.Int).Value = pNotaria.idNotaria
    '            cmd.Parameters.Add("@desNotaria", SqlDbType.VarChar, 55).Value = pNotaria.desNotaria
    '            cmd.Parameters.Add("@nomContacto", SqlDbType.VarChar, 55).Value = pNotaria.nomContacto
    '            cmd.Parameters.Add("@apePaterContac", SqlDbType.VarChar, 55).Value = pNotaria.apePaterContac
    '            cmd.Parameters.Add("@apeMaterContac", SqlDbType.VarChar, 55).Value = pNotaria.apeMaterContac
    '            cmd.Parameters.Add("@telefono", SqlDbType.VarChar, 11).Value = pNotaria.telefono
    '            cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pNotaria.estado
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function
    'Public Shared Function Eliminar(ByVal idNotaria As Int32) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings("BDEvolta").ConnectionString)
    '        Using cmd As New SqlCommand("usp_notaria_del", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idNotaria", SqlDbType.Int).Value = idNotaria
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function

End Class
